# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=powerpc64le-unknown-linux-gnu \
# RUN:   -run-pass postrapseudos %s -o - -verify-machineinstrs | FileCheck %s

---
name:  copy_cr0_gprc
body:             |
  bb.0.entry:
    liveins: $v2, $v3
    ; CHECK-LABEL: name: copy_cr0_gprc
    ; CHECK: renamable $cr0 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    ; CHECK: $r3 = MFOCRF $cr0
    ; CHECK: $r3 = RLWINM killed $r3, 4, 28, 31, implicit-def $x3
    ; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
    renamable $cr0 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    renamable $r3 = COPY killed renamable $cr0, implicit-def $x3
    BLR8 implicit $lr8, implicit $rm, implicit $x3
...
---
name:  copy_cr3_gprc
body:             |
  bb.0.entry:
    liveins: $v2, $v3
    ; CHECK-LABEL: name: copy_cr3_gprc
    ; CHECK: renamable $cr3 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    ; CHECK: $r3 = MFOCRF $cr3
    ; CHECK: $r3 = RLWINM killed $r3, 16, 28, 31, implicit-def $x3
    ; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
    renamable $cr3 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    renamable $r3 = COPY killed renamable $cr3, implicit-def $x3
    BLR8 implicit $lr8, implicit $rm, implicit $x3
...
---
name:  copy_cr7_gprc
body:             |
  bb.0.entry:
    liveins: $v2, $v3
    ; CHECK-LABEL: name: copy_cr7_gprc
    ; CHECK: renamable $cr7 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    ; CHECK: $r3 = MFOCRF $cr7, implicit-def $x3
    ; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
    renamable $cr7 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    renamable $r3 = COPY killed renamable $cr7, implicit-def $x3
    BLR8 implicit $lr8, implicit $rm, implicit $x3
...
---
name:  copy_cr0_g8rc
body:             |
  bb.0.entry:
    liveins: $v2, $v3
    ; CHECK-LABEL: name: copy_cr0_g8rc
    ; CHECK: renamable $cr0 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    ; CHECK: $x5 = MFOCRF8 $cr0
    ; CHECK: $x5 = RLWINM8 killed $x5, 4, 28, 31, implicit-def $x3
    ; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
    renamable $cr0 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    renamable $x5 = COPY killed renamable $cr0, implicit-def $x3
    BLR8 implicit $lr8, implicit $rm, implicit $x3
...
---
name:  copy_cr3_g8rc
body:             |
  bb.0.entry:
    liveins: $v2, $v3
    ; CHECK-LABEL: name: copy_cr3_g8rc
    ; CHECK: renamable $cr3 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    ; CHECK: $x5 = MFOCRF8 $cr3
    ; CHECK: $x5 = RLWINM8 killed $x5, 16, 28, 31, implicit-def $x3
    ; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
    renamable $cr3 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    renamable $x5 = COPY killed renamable $cr3, implicit-def $x3
    BLR8 implicit $lr8, implicit $rm, implicit $x3
...
---
name:  copy_cr7_g8rc
body:             |
  bb.0.entry:
    liveins: $v2, $v3
    ; CHECK-LABEL: name: copy_cr7_g8rc
    ; CHECK: renamable $cr7 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    ; CHECK: $x5 = MFOCRF8 $cr7, implicit-def $x3
    ; CHECK: BLR8 implicit $lr8, implicit $rm, implicit $x3
    renamable $cr7 = nofpexcept XVTDIVDP killed renamable $v2, killed renamable $v3, implicit $rm
    renamable $x5 = COPY killed renamable $cr7, implicit-def $x3
    BLR8 implicit $lr8, implicit $rm, implicit $x3
...
